今天分別要在伺服器端及客戶端,去對封包做發送以及接收的工作,可以先分別在Server以及Client創建Send以及Receive的Script。
發送封包前必須決定好要用TCP或是UDP作為傳輸協議,以及封包要傳給哪幾個目標。
private static void SendTCPData(int _toClient, Packet _packet)
{
_packet.WriteLength();
Server.clients[_toClient].tcp.SendData(_packet);
}
private static void SendUDPData(int _toClient, Packet _packet)
{
_packet.WriteLength();
Server.clients[_toClient].udp.SendData(_packet);
}
private static void SendTCPDataToAll(Packet _packet)
{
_packet.WriteLength();
for (int i = 1; i <= Server.MaxPlayers; i++)
{
Server.clients[i].tcp.SendData(_packet);
}
}
private static void SendTCPDataToAll(int _exceptClient, Packet _packet)
{
_packet.WriteLength();
for (int i = 1; i <= Server.MaxPlayers; i++)
{
if (i != _exceptClient)
{
Server.clients[i].tcp.SendData(_packet);
}
}
}
收到封包後先對封包做解碼,解碼時要注意資料型態的轉換,以及注意封包的ID不能出錯。